package control;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

import model.BoardModel;

/**
 * Dieser Spieler versucht einfach so nah wie möglich an die gegnerische
 * Grundlinie zu kommen.
 * 
 * @author Harry
 * 
 */
public class PlayerAI2 extends PlayerAI {

	public PlayerAI2(String n, Color c, BoardModel model) {
		super(n, c, model);
	}

	private List<Pos> getAllPossibleMoves() {
		List<Pos> list = new ArrayList<>();

		// füge jeden zulässigen Zug zur Liste hinzu
		for (int i = 0; i < 8; i++) {
			for (int j = 0; j < 8; j++) {

				Pos pos = new Pos(i, j);

				// is Zug möglich?
				if (isMovePossible(pos))
					// füge Zug zur Liste hinzu
					list.add(pos);

			}
		}

		return list;

	}

	private Pos getNextBlackMove() {

		List<Pos> list = getAllPossibleMoves();

		// welcher Zug aus Liste ist am nahesten zur gegnerischen Grundlinie?
		Pos temp = getModel().getMarkedPos();
		for (Pos pos : list) {

			if (pos.getX() > temp.getX())
				temp = pos;

		}

		return temp;
	}

	public Pos getNextMove() {
		if (isWhitePlayer())
			return getNextWhiteMove();
		else
			return getNextBlackMove();
	}

	private Pos getNextWhiteMove() {
		return null;
	}

	private boolean isMovePossible(Pos pos) {
		return getModel().isMovePossible(pos);
	}

}
